The architecture of computing devices has changed drastically over time. In part, this is due to the changing availability of resources, including hardware, software, and networking resources. In each generation of computing, as the availability of resources changes, new architectures are considered based on perceived and actual benefits of one system over another. As an example, computing devices have recently moved from desktop, to laptop, to mobile devices, and even more recently, centralized services rendering desktops and displaying them on client devices have become a viable option.
Companies have proposed cloud computing as a way to decrease the hardware requirements on end user devices. With cloud computing, some of the computing elements and computer functionality may be moved to a server, data center, and/or collection of data centers. For example, hardware, memory, processing, data storage and the like can take place in a data center and the data center can transmit information to a thin client and receive data from the thin client.